package org.wdcode.back.action.system;

import java.io.File;
import java.util.List;
import java.util.Map;

import org.wdcode.back.helper.OperateHelper;
import org.wdcode.base.struts.action.BaseAction;
import org.wdcode.base.util.Struts2Util;
import org.wdcode.common.constants.StringConstants;
import org.wdcode.common.io.FileUtil;
import org.wdcode.common.tools.Lists;
import org.wdcode.common.util.CommonUtil;
import org.wdcode.common.util.StringUtil;

/**
 * 查询系统属性Action
 * @author WD
 * @since JDK6
 * @version 1.0 2010-03-02
 */
public class SystemQueryAction extends BaseAction {
	// 序列化 ID
	private static final long	serialVersionUID	= 2488239259997358113L;

	// 储存功能信息 用于动态创建模版
	private Map<String, Object>	templs;
	// 模版目录列表
	private List<String>		lsTempls;

	/**
	 * 跳转到修改页
	 * @return 跳转
	 * @throws Exception
	 */
	public String edit() throws Exception {
		return SUCCESS;
	}

	/**
	 * 跳转到缓存设置页
	 * @return 跳转
	 * @throws Exception
	 */
	public String cache() throws Exception {
		return SUCCESS;
	}

	/**
	 * 跳转到修改模版页
	 * @return 跳转
	 * @throws Exception
	 */
	public String templs() throws Exception {
		// 获得模版路径
		String path = getRealPath() + "\\back";
		// 获得目录文件
		File theme = FileUtil.getFile(path);
		// 获得目录下所有文件
		File[] files = theme.listFiles();
		// 临时文件
		File temp = null;
		// 判断文件不为空
		if (!CommonUtil.isEmpty(files)) {
			// 获得模版目录列表
			lsTempls = Lists.getList(files.length);
			// 循环目录
			for (int i = 0; i < files.length; i++) {
				// 获得文件
				temp = files[i];
				// 判断是目录
				if (temp.isDirectory()) {
					// 添加到列表
					lsTempls.add(temp.getName());
				}
			}
		}
		// 返回成功
		return SUCCESS;
	}

	/**
	 * 获得模版目录列表
	 * @return 模版目录列表
	 */
	public List<String> getLsTempls() {
		return lsTempls;
	}

	/**
	 * 设置模版目录列表
	 * @param lsTempls 模版目录列表
	 */
	public void setLsTempls(List<String> lsTempls) {
		this.lsTempls = lsTempls;
	}

	/**
	 * 获得储存信息
	 * @return 储存信息
	 */
	public Map<String, Object> getTempls() {
		return templs;
	}

	/**
	 * 设置储存信息
	 * @param theme 储存信息
	 */
	public void setTempls(Map<String, Object> templs) {
		this.templs = templs;
	}

	/**
	 * 判断是否有权限
	 * @param url 提交路径
	 * @return 是否有权限
	 */
	public boolean isRights(String url) {
		return OperateHelper.getHelper().isRights(url);
	}

	/**
	 * 获得提交方法名
	 * @return 提交方法名
	 */
	public String getMethod() {
		return StringUtil.subStringLast(Struts2Util.getActionMapping().getName(), StringConstants.UNDERLINE);
	}
}
